/*!
* Copyright 2002 - 2017 Webdetails, a Hitachi Vantara company.  All rights reserved.
*
* This software was developed by Webdetails and is provided under the terms
* of the Mozilla Public License, Version 2.0, or any later version. You may not use
* this file except in compliance with the license. If you need a copy of the license,
* please go to  http://mozilla.org/MPL/2.0/. The Initial Developer is Webdetails.
*
* Software distributed under the Mozilla Public License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or  implied. Please refer to
* the license for the specific language governing your rights and limitations.
*/

package pt.webdetails.cpk.elements;


import pt.webdetails.cpk.cache.ICache;
import pt.webdetails.cpk.datasources.DataSource;
import pt.webdetails.cpk.elements.impl.KettleResult;
import pt.webdetails.cpk.elements.impl.KettleResultKey;

public interface IDataSourceProvider {

  public DataSource getDataSource();

  // TODO: move get/set Cache to another interface ( e.g. ICachable<K,V>)
  // TODO: change KettleResultKey, KettleResult to interfaces?
  public ICache<KettleResultKey, KettleResult> getCache();
  public IDataSourceProvider setCache( ICache<KettleResultKey, KettleResult> cache );

}
